<?php
/**
 * Plugin для инициализации параметров приложения и настройки модулей
 * 
 * НАЗНАЧЕНИЕ ПЛАГИНА:
 * Во многих контроллерах приложения нам необходимо использовать такие параметры как
 * baseUrl и др., чтобы не устанавливать их каждый раз в контроллере и предназаначен
 * данный плагин. Он автоматически при каждом запросе устанавливает необходимые
 * для использования в данном модуле и контроллере параметры приложения.
 * 
 * LICENSE: Free to use license
 * 
 * @copyright 	2009
 * @author 		Яковлев Иван Yak1980@list.ru | Best4u.mail@gmail.com
 * @version		$id:$
 * @link 
 * @since 
 */

//require_once ('Zend/Controller/Plugin/Abstract.php');

class Plugin_ApplicationInit extends Zend_Controller_Plugin_Abstract
{
	public function preDispatch(Zend_Controller_Request_Abstract $request)
	{
//      // используется через помощник вида baseUrl()
//		// Добавляем глобальную переменную вида baseUrl
//	    $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
//		// инициализируем объект вида
//		$viewRenderer->initView();
//		// Получаем базовый путь в данном случае если адрес к нашему сайту
//		// имеет вид http://localhost/kld-zft то baseUrl = /kld-zft
//		// и передаем его в объект вида
//		$viewRenderer->view->baseUrl = $request->getBaseUrl();
		
		
		// Задаем необходимые шаблоны для модулей
		$theme = Zend_Registry::get('config')->theme;
		$module = $request->getModuleName();
		$controller = $request->getControllerName();
		//$moduleController = $module . '/' . $controller;
		$layout = Zend_Layout::getMvcInstance();
		
		if ($module == 'admin') { 
		    $layout->setLayout('admin');
		} elseif ($module == 'ajax') { // для модуля ajax отключаем шаблоны
            $layout->disableLayout(); 
    	} elseif (($controller == 'login') || ($controller == 'error')) {
		    $layout->setLayout('default-login');
		} else {
		    if ($theme == 'default') 
    		    $layout->setLayout('default');
    		else 
    		    $layout->setLayout($theme);
		}
		
		
	}
	
}

